package com.osdp.sc.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import com.osdp.common.base.BaseVo;
import java.util.Date;
import java.util.List;

@Data
@ApiModel("权限菜单树信息")
public class ScPermissionVo extends BaseVo{
    private static final long serialVersionUID = 4013193970046502756L;

    @ApiModelProperty("关键字")
    private String key;

    @ApiModelProperty("标题")
    private String title;

//    @ApiModelProperty("是否配置菜单的数据权限 1是0否 默认0")
//    private Integer ruleFlag;

    /**
     * 父id
     */
    @ApiModelProperty("上级ID")
    private String parentId;

    private String parentName;
    /**
     * 菜单名称
     */
    @ApiModelProperty("菜单名称")
    private String permsName;

    /**
     * 菜单权限编码
     */
    @ApiModelProperty("授权标识，例如：“sys:schedule:list,sys:schedule:info”,多个逗号隔开")
    private String permsCode;
    /**
     * 菜单类型： 0：一级菜单、1：菜单，2：按钮，3：权限
     */
    @ApiModelProperty("菜单类型")
    private String permsType;

    /**
     * 菜单图标
     */
    @ApiModelProperty("菜单图标")
    private String icon;

    /**
     * 前端页面路径
     */
    @ApiModelProperty("前端页面路径")
    private String component;

    /** 前端页面路径名字 */
    @ApiModelProperty("前端页面路径名字")
    private String componentName;

    /**
     * 菜单访问路径
     */
    @ApiModelProperty("菜单访问路径")
    private String url;

    /**
     * 一级菜单是否重定向整个界面路径
     */
    @ApiModelProperty("重定向整个界面路径")
    private String redirect;

    /**
     * 菜单排序
     */
    @ApiModelProperty("菜单排序")
    private Integer sortNo;

    /**
     * 是否叶子节点: 1:是 0:不是
     */
    @ApiModelProperty("是否叶子节点: 1:是 0:不是")
    private boolean isLeaf;

    /**
     * 是否路由菜单: 0:不是  1:是（默认值1）
     */
//    @ApiModelProperty("是否路由菜单: 0:不是  1:是（默认值1）")
//    private boolean route;

    /**
     * 描述
     */
    @ApiModelProperty("描述")
    private String description;

    /**
     * 删除状态 0正常 1已删除
     */
//    @ApiModelProperty("删除状态 0正常 1已删除")
//    private Integer delFlag;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private String createBy;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 更新人
     */
    @ApiModelProperty("更新人")
    private String updateBy;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /**alwaysShow*/
//    @ApiModelProperty("是否总是显示")
//    private boolean alwaysShow;
    /**是否隐藏路由菜单: 0否,1是（默认值0）*/
//    @ApiModelProperty("是否隐藏路由菜单: 0否,1是（默认值0）")
//    private boolean hidden;

    /**按钮权限状态(0无效1有效)*/
    @ApiModelProperty("按钮权限状态(0无效1有效)")
    private String validation;

    /** 按钮请求类型：GET, POST, PUT, PATCH, DELETE*/
    @ApiModelProperty("请求类型（或方法）")
    private String requestType;
    /**
     * 是否检验请求类型 0:不检验,1:校验
     */
    @ApiModelProperty("是否检查请求类型（或方法）")
    private String isCheckRequestType;
    /**
     * 通用权限标识，所有用户具有通用权限，无需要另外分配，0非通用，1通用
     */
//    @ApiModelProperty("通用权限标识 0非通用，1通用")
//    private Integer commonFlag;

    /**
     * 子节点集合
     */
    @ApiModelProperty("子节点集合")
    private List<ScPermissionVo> children;

}
